﻿using WMS.FC.Domain.DomainObject.System;
using WMS.FC.Domain.PersistenceObject.Business;

namespace WMS.FC.Domain.Repository
{
    public interface ICellRepository : IRepositoryBase
    {
        /// <summary>
        /// 根据条码获取电池
        /// </summary>
        /// <param name="cellBarcode"></param>
        /// <returns></returns>
        Task<CellPO?> GetCellByBarcode(string cellBarcode);

        /// <summary>
        /// 绑定假电池
        /// </summary>
        /// <param name="trayBarcode"></param>
        /// <param name="cellPosition"></param>
        /// <param name="userInfo"></param>
        /// <returns></returns>
        Task<int> BindeFakeCell(string trayBarcode, int cellPosition, UserInfo userInfo);

        /// <summary>
        /// 解绑假电池
        /// </summary>
        /// <param name="trayBarcode"></param>
        /// <param name="cellPosition"></param>
        /// <param name="userInfo"></param>
        /// <returns></returns>
        Task<int> UnbindFakeCell(string trayBarcode, int cellPosition, UserInfo userInfo);

        /// <summary>
        /// 解绑托盘
        /// </summary>
        /// <param name="trayBarcode"></param>
        /// <param name="userInfo"></param>
        /// <returns></returns>
        Task<int> UnbindTray(string trayBarcode, UserInfo userInfo);
    }
}
